package com.kawa.util;

import com.kawa.util.RedisUtil;
import cn.hutool.json.JSONUtil; // 新增JSON工具导入
import java.util.concurrent.TimeUnit;

public class TokenPrefixUtil {

    private static final String ACCESS_TOKEN_PREFIX = "Access_token:";
    private static final String REFRESH_TOKEN_PREFIX = "Refresh_token:";
    private static final String USER_INFO_PREFIX = "UserInfo:"; // 新增用户信息前缀

    /**
     * 为长期Token和短期Token添加前缀并存储到Redis，同时存储用户信息
     * @param redisUtil Redis工具类实例
     * @param foverToken 长期Token
     * @param flashToken 短期Token
     * @param timeout 过期时间
     * @param unit 时间单位
     * @param user 用户信息对象 // 新增参数
     * @return 添加前缀后的长期Token
     */
    public static String storeWithPrefix(RedisUtil redisUtil,
                                         String foverToken,
                                         String flashToken,
                                         long timeout,
                                         TimeUnit unit,
                                         Object user) { // 新增user参数

        // 1. 长期token存储（保持原逻辑）
        String accessRedisKey = ACCESS_TOKEN_PREFIX + foverToken;
        redisUtil.setEx(accessRedisKey, flashToken, timeout, unit);

        // 2. 短期token存储：固定2小时过期
        String refreshRedisKey = REFRESH_TOKEN_PREFIX + flashToken;
        String userJson = JSONUtil.toJsonStr(user);
        redisUtil.setEx(refreshRedisKey, userJson, 2, TimeUnit.HOURS);






        return foverToken;
    }
}
